package co.edu.udea.herbario.dao;

import co.edu.udea.herbario.dto.Pais;
import co.edu.udea.herbario.excepcion.Excepcion;

/**
 * Clase de tipo interface que contiene la declaracion de los metodos utilizados para gestionar
 * los datos de la tabla Pais entre la persistencia y la logica de la aplicacion
 * 
 * @author Lorena Orozco, Alejandro Areiza, Marcela Colorado
 *
 */

public interface PaisDao
{	
	/**
	 * Metodo que obtiene desde la tabla Pais el elemento referenciado con el codigo indicado 
	 * como parametro
	 * 
	 * @param cod es el codigo que identifica al pais dentro del sistema
	 * 
	 * @return retorna un objeto de tipo Pais
	 * 
	 * @throws Excepcion
	 */
	public Pais obtener(int cod) throws Excepcion;
	
	/**
	 * Metodo para crear un elemento dentro de la tabla Pais
	 * 
	 * @param pais es un objeto de tipo Pais que contiene los datos del elemento que se desea 
	 * ingresar en la tabla Pais
	 * 
	 * @return retorna un entero: res = 1 si se realizo correctamente la creacion, de
	 * lo contrario res = -1
	 * 
	 * @throws Excepcion
	 */
	public int crear(Pais pais) throws Excepcion;
	
	/**
	 * Modifica el estado (activo o inactivo) del elemento de la tabla Pais que coincida con los datos que 
	 * contiene el objeto pasado como parametro
	 * 
	 * @param pais es un objeto de tipo Pais
	 * 
	 * @return retorna un entero: res = 1 si se realizo correctamente la eliminacion, de
	 * lo contrario res = -1
	 * 
	 * @throws Excepcion
	 */
	public int eliminar(Pais pais) throws Excepcion;
}
